/*
 * Copyright (C) 2008 Pleyo.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1.  Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 * 2.  Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 * 3.  Neither the name of Pleyo nor the names of
 *     its contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY PLEYO AND ITS CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL PLEYO OR ITS CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */



#ifndef UnicodeGenericTable_h
#define UnicodeGenericTable_h



/*
 Tested and validated for unicode from 0x0000 to 0xffff.
*/



namespace WTF {
  namespace Unicode {
    static const int32_t generic_indexes[16] = {0x10, 0x3f14, 0x3d20, 0x1a, 0x622, 0x76e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3500b2};

    static const uint16_t generic_trieIndex[7816]={
        0x250, 0x258, 0x260, 0x268, 0x270, 0x278, 0x280, 0x288, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x28e, 0x296, 0x29e, 0x2a6, 0x2a6, 0x2a6, 0x2aa, 0x2b2, 0x248, 0x248, 0x2b5,
        0x248, 0x248, 0x248, 0x248, 0x2bd, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x2c3, 0x2c8, 0x2d0, 0x2d2,
        0x2da, 0x2e2, 0x2ea, 0x2f2, 0x2f8, 0x2ff, 0x307, 0x30f, 0x317, 0x31f, 0x325, 0x32c, 0x330, 0x337, 0x33f, 0x345,
        0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x34d, 0x34e, 0x356, 0x35e, 0x366, 0x34e, 0x36e, 0x376,
        0x34d, 0x34e, 0x37e, 0x382, 0x34d, 0x34e, 0x38a, 0x392, 0x366, 0x397, 0x39f, 0x248, 0x3a4, 0x248, 0x3ac, 0x3b0,
        0x248, 0x3b7, 0x3bf, 0x248, 0x248, 0x3c5, 0x3cd, 0x3d5, 0x248, 0x248, 0x3dd, 0x248, 0x248, 0x248, 0x3e3, 0x248,
        0x248, 0x3e9, 0x3f1, 0x248, 0x248, 0x3f5, 0x3fd, 0x248, 0x401, 0x408, 0x248, 0x410, 0x418, 0x41f, 0x3a3, 0x248,
        0x248, 0x427, 0x401, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x42e, 0x248, 0x436, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x43e, 0x248, 0x248, 0x248, 0x446, 0x446, 0x372, 0x372, 0x248, 0x44c, 0x454, 0x436,
        0x45c, 0x248, 0x248, 0x248, 0x248, 0x364, 0x248, 0x248, 0x248, 0x464, 0x46c, 0x248, 0x248, 0x248, 0x46e, 0x476,
        0x47e, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x486, 0x489, 0x3a4, 0x491, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x499, 0x3b7,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x49c, 0x4a4, 0x4a8,
        0x4b0, 0x4b8, 0x4bf, 0x4c7, 0x4cf, 0x4d7, 0x4dd, 0x4e1, 0x4e9, 0x4f1, 0x4f9, 0x248, 0x501, 0x476, 0x476, 0x476,
        0x509, 0x511, 0x519, 0x521, 0x526, 0x52e, 0x536, 0x53c, 0x544, 0x54c, 0x248, 0x552, 0x559, 0x476, 0x476, 0x55f,
        0x476, 0x567, 0x56f, 0x476, 0x577, 0x248, 0x248, 0x473, 0x476, 0x476, 0x476, 0x476, 0x476, 0x476, 0x476, 0x476,
        0x476, 0x476, 0x476, 0x476, 0x57f, 0x587, 0x248, 0x248, 0x58f, 0x595, 0x59a, 0x5a2, 0x581, 0x5a8, 0x5b0, 0x5b8,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x476, 0x476, 0x476, 0x476, 0x5c0, 0x5c7, 0x5cf, 0x5d7,
        0x5df, 0x5e7, 0x5ef, 0x5f6, 0x5fe, 0x606, 0x60d, 0x615, 0x61d, 0x625, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x62c, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x634, 0x248, 0x248, 0x248, 0x63c, 0x476, 0x476, 0x479, 0x476, 0x476, 0x476, 0x476, 0x476, 0x476, 0x643, 0x649,
        0x651, 0x659, 0x248, 0x248, 0x661, 0x668, 0x248, 0x287, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x47a, 0x248,
        0x669, 0x248, 0x501, 0x671, 0x248, 0x679, 0x681, 0x248, 0x248, 0x248, 0x248, 0x685, 0x248, 0x248, 0x46e, 0x286,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x476, 0x476,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x501, 0x476, 0x567, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x61d, 0x46d, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x68d, 0x694, 0x248, 0x697, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x787, 0x78a, 0x248, 0x792, 0x248, 0x792, 0x248, 0x792, 0x248, 0x792, 0x248, 0x792, 0x248, 0x792, 0x248, 0x792,
        0x248, 0x792, 0x248, 0x792, 0x248, 0x792, 0x248, 0x792, 0x248, 0x792, 0x79a, 0x792, 0x248, 0x792, 0x248, 0x792,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x69d, 0x6a5, 0x6a9, 0x330, 0x330, 0x330, 0x330, 0x330,
        0x330, 0x330, 0x330, 0x330, 0x330, 0x330, 0x330, 0x330, 0x330, 0x6ad, 0x330, 0x330, 0x330, 0x330, 0x6b5, 0x6b9,
        0x6c1, 0x6c9, 0x6cd, 0x6d5, 0x330, 0x330, 0x330, 0x6d9, 0x6e1, 0x260, 0x6e9, 0x6f1, 0x248, 0x248, 0x248, 0x6f9,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x701, 0x248, 0x476, 0x476, 0x56f, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x709, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2,
        0x711, 0x715, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2,
        0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2,
        0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2, 0x2d2,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x71d, 0x725, 0x72b, 0x248, 0x248,
        0x476, 0x476, 0x733, 0x248, 0x248, 0x248, 0x248, 0x248, 0x476, 0x476, 0x73b, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x741, 0x248, 0x748, 0x248, 0x744, 0x248, 0x74b, 0x248, 0x753, 0x757,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248,
        0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x248, 0x75f,
        0x767, 0x76f, 0x76f, 0x76f, 0x777, 0x777, 0x777, 0x777, 0x2a6, 0x2a6, 0x2a6, 0x2a6, 0x2a6, 0x2a6, 0x2a6, 0x77f,
        0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777,
        0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777,
        0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,8,7,8,9,7, 0x12, 0x12,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,7,7,7,8,
        9, 0xa, 0xa,4,4,4, 0xa, 0xa, 0x300a, 0xf00a, 0xa,3,6,3,6,6,
        2,2,2,2,2,2,2,2,2,2,6, 0xa, 0x500a, 0xa, 0xd00a, 0xa,
        0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x500a, 0xa, 0xd00a, 0xa, 0xa,
        0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x500a, 0xa, 0xd00a, 0xa, 0x12,
        0x12, 0x12, 0x12, 0x12, 0x12,7, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
        6, 0xa,4,4,4,4, 0xa, 0xa, 0xa, 0xa, 0, 0x900a, 0xa, 0xb2, 0xa, 0xa,
        4,4,2,2, 0xa, 0, 0xa, 0xa, 0xa,2, 0, 0x900a, 0xa, 0xa, 0xa, 0xa,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0xa, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0xa, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0xa, 0xa, 0, 0,
        0, 0, 0, 0, 0, 0, 0xa, 0, 0, 0, 0, 0, 0xa, 0xa, 0, 0xa,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0xb1, 0xb1, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0xa, 0, 0, 0, 0, 0,1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,1, 0xb1,
        1, 0xb1, 0xb1,1, 0xb1, 0xb1,1, 0xb1,1,1,1,1,1,1,1,1,
        1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
        1,1,1,1,1,1,1,1, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd,6, 0xd, 0xa, 0xa, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0x8d, 0x8d, 0x8d, 0x8d, 0x4d, 0x8d,
        0x4d, 0x8d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x8d, 0x8d, 0x8d, 0x8d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
        0x4d, 0x4d, 0x4d, 0xd, 0xd, 0xd, 0xd, 0xd, 0x2d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
        0x8d, 0x4d, 0x4d, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xd,5,5,5,5,5,5,5,5,
        5,5,4,5,5, 0xd, 0x4d, 0x4d, 0xb1, 0x8d, 0x8d, 0x8d, 0xd, 0x8d, 0x8d, 0x8d,
        0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
        0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
        0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
        0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x8d, 0x4d, 0x4d, 0x8d,
        0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x4d, 0x8d, 0x4d, 0x8d, 0x4d, 0x4d, 0x8d, 0x8d,
        0xd, 0x8d, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xd, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xd, 0xd, 0xb1, 0xb1, 0xa, 0xb1, 0xb1, 0xb1, 0xb1, 0x8d, 0x8d,2,2,2,2,
        2,2,2,2,2,2, 0x4d, 0x4d, 0x4d, 0xd, 0xd, 0x4d, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xb2, 0x8d, 0xb1, 0x4d, 0x4d,
        0x4d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x4d, 0x4d, 0x4d, 0x4d, 0x8d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
        0x4d, 0x4d, 0x4d, 0x4d, 0x8d, 0x4d, 0x8d, 0x4d, 0x8d, 0x4d, 0x4d, 0x8d, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xd,
        0xd, 0x8d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x8d, 0x8d, 0x8d,
        0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x8d, 0x8d, 0x4d, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,1,1,1,1,
        1,1,1,1,1,1, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
        0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,1,1, 0xa, 0xa, 0xa, 0xa, 0x21,1,
        1,1,1,1, 0, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0xb1, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0, 0, 0, 0, 0xb1, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0,
        0, 0, 0, 0, 0, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,4,4, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0, 0, 0, 0, 0xb1,
        0xb1, 0, 0, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0xb1,
        0xb1, 0, 0, 0, 0, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,4, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0, 0, 0xb1, 0, 0xb1, 0xb1, 0xb1,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0, 0, 0, 0, 0, 0,
        0, 0, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,4, 0xa, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0, 0, 0,
        0, 0, 0xb1, 0xb1, 0xb1, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0,
        0, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0xb1, 0, 0, 0xa0, 0, 0, 0, 0, 0, 0, 0xa0, 0, 0, 0, 0, 0,
        0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1,
        0xb1, 0, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0xb1, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0,
        0, 0, 0,4, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0xb1, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0xb1,
        0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0xb1, 0, 0xb1, 0, 0xb1, 0x300a, 0xf00a, 0x300a, 0xf00a, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0xb1, 0,
        0, 0, 0xb1, 0xb1, 0, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0, 0, 0, 0, 0, 0,9, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0x300a, 0xf00a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0xa0, 0xa0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0,
        0, 0, 0, 0, 0, 0, 0xb1, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0,4, 0, 0xb1, 0, 0,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xb1, 0xb1, 0xb1,9, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0xb1, 0xb1, 0x11, 0x11, 0x11, 0, 0, 0, 0,
        0, 0, 0xb1, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0,
        0xa, 0, 0, 0, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1,
        0xb1, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0,
        0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0, 0xa,
        0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0,
        9,9,9,9,9,9,9,9,9,9,9, 0xb2, 0x412, 0x432, 0x8a0, 0x8a1,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0x100a, 0x100a, 0x300a, 0xf00a, 0x100a, 0x100a,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,9,7, 0x8ab, 0x8ae, 0x8b0, 0x8ac, 0x8af,6,
        4,4,4,4,4, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa,
        6, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,9, 0xb2, 0xb2, 0xb2, 0xb2,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2,2, 0, 0, 0,
        2,2,2,2,2,2,3,3, 0xa, 0x300a, 0xf00a, 0,2,2,2,2,
        2,2,2,2,2,2,3,3, 0xa, 0x300a, 0xf00a, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,4,4,4,4,
        4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
        4,4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0xa, 0xa, 0, 0xa, 0xa, 0xa, 0xa, 0, 0xa, 0xa, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0, 0xa, 0xa, 0xa, 0, 0, 0,
        0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0xa, 0, 0xa, 0, 0xa, 0, 0,
        0, 0,4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa,
        0, 0, 0, 0, 0x100a, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0xa, 0xa,
        0xa, 0xa, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0x100a, 0x100a, 0x100a, 0x100a, 0xa, 0xa, 0xa, 0x700a, 0x700a, 0x700a, 0xb00a,
        0xb00a, 0xb00a, 0xa, 0xa, 0xa, 0x100a,3,4, 0xa, 0x900a, 0x100a, 0xa, 0xa, 0xa, 0x100a, 0x100a,
        0x100a, 0x100a, 0xa, 0x100a, 0x100a, 0x100a, 0x100a, 0xa, 0x100a, 0xa, 0x100a, 0xa, 0xa, 0xa, 0xa, 0x100a,
        0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0xa, 0x100a, 0xa, 0x100a,
        0x300a, 0xf00a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x900a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a,
        0x100a, 0xa, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0x100a, 0x100a, 0xa, 0x100a, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a,
        0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a,
        0x300a, 0xf00a, 0x300a, 0xf00a, 0x100a, 0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa,
        0x900a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0xa, 0xa, 0x900a, 0x100a,
        0x900a, 0x900a, 0x100a, 0x900a, 0x100a, 0x100a, 0x100a, 0x100a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a,
        0x100a, 0xa, 0xa, 0xa, 0xa, 0xa, 0x100a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x900a, 0xa, 0xa, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a,
        0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa,
        0x300a, 0xf00a, 0x900a, 0x900a, 0x900a, 0x100a, 0x900a, 0x900a, 0x100a, 0x100a, 0x900a, 0x900a, 0x900a, 0x900a, 0x900a, 0x100a,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0x100a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa,2,2,2,2,2,2,2,2,2,2,2,2,
        2,2,2,2,2,2,2,2, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa,
        0xa, 0, 0xa, 0xa, 0xa, 0xa, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0, 0xa, 0, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0xa, 0,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0,
        0x100a, 0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0,
        0xa, 0xa, 0xa, 0x100a, 0x100a, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa, 0x100a, 0x300a, 0xf00a, 0xa,
        0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0, 0, 0, 0,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x700a, 0x300a, 0xf00a,
        0xb00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a,
        0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0x900a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0x100a, 0x100a,
        0x300a, 0xf00a, 0xa, 0xa, 0xa, 0x100a, 0xa, 0xa, 0xa, 0xa, 0x100a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa,
        0x300a, 0xf00a, 0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0x100a, 0xa, 0x100a,
        0x100a, 0x100a, 0xa, 0xa, 0x100a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0x100a, 0x900a, 0x100a, 0x100a, 0x300a, 0xf00a, 0xa, 0xa, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a,
        0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a, 0xa, 0x100a, 0x100a, 0x100a, 0x100a, 0xa, 0xa,
        0x100a, 0xa, 0x100a, 0xa, 0xa, 0x100a, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa,
        0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0x100a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0xa, 0xa,
        0xa, 0xa, 0x100a, 0x100a, 0x100a, 0x100a, 0xa, 0x100a, 0x100a, 0xa, 0xa, 0x100a, 0x100a, 0xa, 0xa, 0xa,
        0xa, 0x300a, 0xf00a, 0x100a, 0x100a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x100a, 0x100a, 0x100a,
        0x100a, 0x100a, 0x100a, 0x300a, 0xf00a, 0x100a, 0x100a, 0x100a, 0x100a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a,
        0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x100a, 0x100a, 0x100a, 0x100a, 0x300a, 0xf00a, 0x100a, 0xa, 0xa, 0x300a, 0xf00a,
        0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0x300a, 0xf00a, 0x100a, 0x100a, 0x300a, 0xf00a, 0x100a, 0x100a, 0x100a,
        0x100a, 0x100a, 0x100a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x100a, 0x100a, 0x100a, 0x100a, 0x100a,
        0x100a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0xa, 0xa,
        0x100a, 0xa, 0x900a, 0xa, 0xa, 0xa, 0x100a, 0x900a, 0x900a, 0x900a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0xa,
        0x300a, 0xf00a, 0x100a, 0xa, 0xa, 0xa, 0xa, 0x100a, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x100a,
        0xa, 0x100a, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0,
        0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0xa, 0x300a, 0xf00a, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0x300a, 0xf00a, 0, 0,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0, 0, 0, 0,9, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0x300a, 0xf00a, 0x300a, 0xf00a,
        0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0xa, 0xa, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a, 0x300a, 0xf00a,
        0xa, 0x300a, 0xf00a, 0x100a, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xa, 0, 0, 0, 0, 0, 0xa, 0xa, 0, 0, 0, 0,
        0, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xa,
        0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0,
        0, 0, 0, 0, 0, 0, 0x11, 0, 0, 0, 0xb1, 0, 0, 0, 0, 0xb1,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0xb1, 0xb1, 0, 0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0xa, 0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0,1, 0xb1,1,1,1,1,1,1,1,1,1,1,3,1,1,
        1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
        1,1,1,1, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xa, 0xa, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
        0x12, 0x12, 0x12, 0x12, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xa, 0xd, 0xd, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0, 0,
        0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa,6, 0xa,6, 0, 0xa,6, 0xa, 0xa, 0xa, 0x300a, 0xf00a, 0x300a,
        0xf00a, 0x300a, 0xf00a,4, 0xa, 0xa,3,3, 0x300a, 0xf00a, 0xa, 0, 0xa,4,4, 0xa,
        0, 0, 0, 0, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd, 0xd,
        0xd, 0xd, 0xd, 0xb2, 0, 0xa, 0xa,4,4,4, 0xa, 0xa, 0x300a, 0xf00a, 0xa,3,
        6,3,6,6,2,2,2,2,2,2,2,2,2,2,6, 0xa,
        0x500a, 0xa, 0xd00a, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x500a,
        0xa, 0xd00a, 0xa, 0x300a, 0xf00a, 0xa, 0x300a, 0xf00a, 0xa, 0xa, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0,4,4, 0xa, 0xa, 0xa,4,4, 0, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0xaa, 0xaa, 0xaa,
        0xa, 0xa, 0x12, 0x12, 0, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0,1,1,1,1,1,1,1,1,1,1,1,1,
        1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
        1,1,1, 0xa,1, 0xb1, 0xb1, 0xb1,1, 0xb1, 0xb1,1,1,1,1,1,
        0xb1, 0xb1, 0xb1, 0xb1,1,1,1,1,1,1,1,1,1,1,1,1,
        1,1,1,1,1,1,1,1,1,1,1,1, 0xb1, 0xb1, 0xb1,1,
        1,1,1, 0xb1, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0xb1, 0xb1, 0xb1, 0xb1, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xb1, 0xb1,
        0xb1, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa,
        0xa, 0xa, 0xa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1000,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0x1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1000,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2,2,2,2,2,2,
        2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
        2,2,2,2,2,2,2,2,2,2,2,2, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x12, 0x12, 0x12, 0xb2, 0x12, 0x12,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0xb2, 0xb2, 0xb2, 0xb2,
        0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2,
        0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0x12, 0x12, 0x12, 0x12,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0xb1, 0xb1, 0xb1, 0xb1,
        0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0x12, 0x12, 0x12, 0x12,
        0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x820, 0, 0x840, 0x860,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x880, 0x8a0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0x8c0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0x8c0, 0x8e0, 0x900, 0x900, 0x900, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0
    };
    
    static const uint32_t generic_mirrors[26]={
      0x2000ab, 0xbb, 0x2a02215, 0x1202243, 0x2802298, 0x2c022a6, 0x30022a8, 0x2e022a9,
      0x32022ab, 0x6022cd, 0x1e022f2, 0x20022f3, 0x22022f4, 0x24022f6, 0x26022f7, 0x14022fa,
      0x16022fb, 0x18022fc, 0x1a022fd, 0x1c022fe, 0x8029b8, 0x4029f5, 0xa02ade, 0xe02ae3,
      0xc02ae4, 0x1002ae5
    };
    
    static const uint8_t generic_jgArray[332]={
      3,3, 0x2c,3, 0x2d,3,4, 0x2a,4,4, 0xd, 0xd, 0xd,6,6, 0x1f,
      0x1f, 0x23, 0x23, 0x21, 0x21, 0x28, 0x28,1,1, 0, 0, 0, 0, 0, 0,9,
      0x1d, 0x13, 0x16, 0x18, 0x1a, 0x10, 0x2c, 0x2d, 0x2d, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,4, 0x1d, 0,3,
      3,3, 0,3, 0x2c, 0x2c, 0x2d,4,4,4,4,4,4,4,4, 0xd,
      0xd, 0xd, 0xd, 0xd, 0xd, 0xd,6,6,6,6,6,6,6,6,6, 0x1f,
      0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x23, 0x23, 0x23, 0x21, 0x21, 0x28,1,9,
      9,9,9,9,9, 0x1d, 0x1d, 0xb, 0x26, 0xb, 0x13, 0x13, 0x13, 0xb, 0xb, 0xb,
      0xb, 0xb, 0xb, 0x16, 0x16, 0x16, 0x16, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x15, 0xd, 0x2a, 0x11,
      0x11, 0xe, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2d, 0x2f, 0x2d, 0x2c, 0x2d, 0x2d,
      0x2e, 0x2e, 0, 0x2a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,6, 0x1f, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0x23, 0x21,1, 0, 0, 0x15, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2, 0,
      5, 0xc, 0xc,7,7, 0xf, 0x27, 0x32, 0x12, 0x2b, 0x2b, 0x30, 0x31, 0x14, 0x17, 0x19,
      0x1b, 0x24, 0xa,8, 0x1c, 0x20, 0x22, 0x1e,7, 0x25, 0x29,5, 0xc,7, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x35, 0x34, 0x33,4,4,
      4,4,4,4,4, 0xd, 0xd,6,6, 0x1f, 0x23,1,1,1,9,9,
      0xb, 0xb, 0xb, 0x18, 0x18, 0x1a, 0x1a, 0x1a, 0x16, 0x1f, 0x1f, 0x23
    };


    inline int32_t generic_defaultGetFoldingOffset(uint32_t data); 
    typedef int32_t generic_GetFoldingOffset(uint32_t data);



    typedef struct generic_UTrie {
        const uint16_t* index;
        const uint32_t* data32; 
        generic_GetFoldingOffset* getFoldingOffset;
        int32_t indexLength, dataLength;
        uint32_t initialValue;
        int8_t /*UBool*/ isLatin1Linear;
    } generic_UTrie;
    
    
    
    typedef struct generic_Props {
        const int32_t* indexes;
        const uint32_t* mirrors;
        const uint8_t* jgArray;
        
        generic_UTrie trie;
        uint8_t formatVersion[4];
    } generic_Props;
    
    
    static const generic_Props generic_props_singleton = {
        generic_indexes,
        generic_mirrors,
        generic_jgArray,
        {
            generic_trieIndex,
            NULL,
            generic_defaultGetFoldingOffset,
            2336,
            5480,
            0,
            1
        },
        { 1, 0, 5, 2 }
    };
    
#define GENERIC_SHIFT               5
#define GENERIC_DATA_BLOCK_LENGTH   0x20
#define GENERIC_MASK                0x1f
#define GENERIC_LEAD_INDEX_DISP     0x140
#define GENERIC_INDEX_SHIFT         2


#define GENERIC_GET_CLASS(props) ((props)&0x0000001f)

#define GENERIC_U16_LEAD(supplementary) (uint16_t)(((supplementary)>>10)+0xd7c0)

#define GENERIC_GET_PROPS(bdp, c, result)     GENERIC_GET16(&(bdp)->trie, c, result);

#define _GENERIC_GET_RAW(trie, data, offset, c16)  (trie)->data[((int32_t)((trie)->index[(offset)+((c16)>>GENERIC_SHIFT)])<<GENERIC_INDEX_SHIFT)+((c16)&GENERIC_MASK)]

#define GENERIC_GET16(trie, c32, result) _GENERIC_GET(trie, index, c32, result, uint16_t)

#define _GENERIC_GET(trie, data, c32, result, resultType) \
    if((uint32_t)(c32) <= 0xffff) { \
        (result) = _GENERIC_GET_FROM_BMP(trie, data, c32); \
    } else if((uint32_t)(c32) <= 0x10ffff) { \
        uint16_t __lead16 = GENERIC_U16_LEAD(c32); \
        _GENERIC_GET_FROM_PAIR(trie, data, __lead16, c32, result, resultType); \
    } else \
        (result) = (resultType)((trie)->initialValue);
    
#define _GENERIC_GET_FROM_BMP(trie, data, c16) \
    _GENERIC_GET_RAW(trie, data, 0xd800<=(c16) && (c16) <= 0xdbff ? GENERIC_LEAD_INDEX_DISP : 0, c16);

#define _GENERIC_GET_FROM_PAIR(trie, data, c, c2, result, resultType) { \
    int32_t __offset; \
    (result) = _GENERIC_GET_RAW((trie), data, 0, (c)); \
    __offset=0; (trie)->getFoldingOffset(result); \
    if(__offset>0) \
        (result) = _GENERIC_GET_RAW((trie), data, __offset, (c2)&0x3ff); \
    else \
        (result) = (resultType)((trie)->initialValue); \
}


    inline int32_t generic_defaultGetFoldingOffset(uint32_t data)
    {
        return (int32_t)data;
    }
  }
}
#endif /* UnicodeGenericTable_h */

